<?php

//require_once "Mail.php";
//require_once('class.phpmailer.php');

if (!defined('DATABASE_NAME')) {
    define("DATABASE_NAME", "default");
}

class host_model extends CI_Model {

    var $id;
    var $nome;
    var $host;
    var $ip;
    var $senha;
    var $user;
    var $zone;
    var $DBControle;

    function __construct($id = '', $nome = '', $host = '', $ip = '', $senha = '', $user = '', $zone = '') {
        parent::__construct();

        $this->id = $id;
        $this->nome = $nome;
        $this->host = $host;
        $this->ip = $ip;
        $this->senha = $senha;
        $this->user = $user;
        $this->zone = $zone;
    }

    function id($id) {
        $this->DBControle = $this->load->database(DATABASE_NAME, TRUE);

        $this->DBControle->where('h0_id', $id);
        $query = $this->DBControle->get('Host');
        $result = $query->result();

        if (count($result) > 0) {
            $nome = $result[0];

            $this->id = $nome->h0_id;
            $this->nome = $nome->h0_nome;
            $this->host = $nome->h0_host;
            $this->ip = $nome->h0_ip;
            $this->senha = $nome->h0_senha;
            $this->user = $nome->h0_user;
            $this->zone = $nome->h0_zone;

            return $this;
        } else {
            return false;
        }
    }

    function host($host) {
        $this->DBControle = $this->load->database(DATABASE_NAME, TRUE);

        $this->DBControle->where('h0_host', $host);
        $query = $this->DBControle->get('Host');
        $result = $query->result();

        if (count($result) > 0) {
            $nome = $result[0];

            $this->id = $nome->h0_id;
            $this->nome = $nome->h0_nome;
            $this->host = $nome->h0_host;
            $this->ip = $nome->h0_ip;
            $this->senha = $nome->h0_senha;
            $this->user = $nome->h0_user;
            $this->zone = $nome->h0_zone;

            return $this;
        } else {
            return false;
        }
    }

    function adicionar($nome, $host, $ip, $senha, $user, $zone) {
        $this->DBControle = $this->load->database(DATABASE_NAME, TRUE);
        $insert["h0_nome"] = $nome;
        $insert["h0_host"] = $host;
        $insert["h0_ip"] = $ip;
        $insert["h0_senha"] = $senha;
        $insert["h0_user"] = $user;
        $insert["h0_zone"] = $zone;

        if ($nome != '' && $host != '' && $ip != '') {
            $this->DBControle->insert('Host', $insert);
            return $this->DBControle->insert_id();
        } else {
            return false;
        }
    }

    function update($id, $nome = false, $host = false, $ip = false, $senha = false, $user = false, $zone = false) {
        $this->DBControle = $this->load->database(DATABASE_NAME, TRUE);
        $update = array();

        if ($nome) {
            $update["h0_nome"] = $nome;
        }
        if ($host) {
            $update["h0_host"] = $host;
        }
        if ($ip) {
            $update["h0_ip"] = $ip;
        }
        if ($senha) {
            $update["h0_senha"] = $senha;
        }
        if ($user) {
            $update["h0_user"] = $user;
        }
        if ($zone) {
            $update["h0_zone"] = $zone;
        }

        if (count($update) > 0) {
            $this->DBControle->where('h0_id', $id);
            $this->DBControle->update('Host', $update);
        }
    }

    function remover() {
        $this->DBControle = $this->load->database(DATABASE_NAME, TRUE);
    }

    function listar() {
        $this->DBControle = $this->load->database(DATABASE_NAME, TRUE);
        $query3 = $this->DBControle->get('Host');
        $result = $query3->result();
        $lista = array();
        foreach ($result as $key => $value) {
            $lista[] = new Host_model($value->h0_id, $value->h0_nome, $value->h0_host, $value->h0_ip, $value->h0_senha, $value->h0_user, $value->h0_zone);
        }

        return $lista;
    }

    function myhosts($id) {
        $this->DBControle = $this->load->database(DATABASE_NAME, TRUE);
        $this->DBControle->where('h0_user', $id);
        $query3 = $this->DBControle->get('Host');
        $result = $query3->result();
        $lista = array();
        foreach ($result as $key => $value) {
            $lista[] = new Host_model($value->h0_id, $value->h0_nome, $value->h0_host, $value->h0_ip, $value->h0_senha, $value->h0_user, $value->h0_zone);
        }

        return $lista;
    }

    function pagina($numerpdapagina, $resultadosporpagina = 15) {
        $this->DBControle = $this->load->database(DATABASE_NAME, TRUE);
        $query3 = $this->DBControle->get('Host');
        $result = $query3->result();
        $lista = array();
        foreach ($result as $key => $value) {
            $lista[] = new Host_model($value->h0_id, $value->h0_nome, $value->h0_host, $value->h0_ip, $value->h0_senha, $value->h0_user, $value->h0_zone);
        }

        $listapagina = array_slice($lista, $numerpdapagina, $resultadosporpagina);

        $retorno = array();
        $retorno[0] = count($lista);
        $retorno[1] = $listapagina;

        return $retorno;
    }

    function user() {
        if ($this->id) {
            $this->load->model('user_model', 'user');

            $user = $this->user->id($this->user);

            return $user;
        }
        return false;
    }

    function zone() {
        if ($this->id) {
            $this->load->model('zone_model');

            $zone = $this->zone_model->id($this->zone);

            return $zone;
        }
        return false;
    }

}

?>
